# 函数的相关应用
# def Print():
#     """
#     单纯的打印字符串函数
#     """
#     print("Helloworld")
#     return
#
#
# Print()
# help(Print)
# print(Print())

# print(Print)

# 函数中的参数
# def add(num1, num2):
#     return num1 + num2
#
#
# print(add(1.2, 2))

# 输入五门科目的成绩，为了方便传参，使用赋值参数
# def get_score(pe, eng, math, phy, chem):
#     return pe * 0.5 + eng * 1 + math * 1.2 + phy * 1 + chem * 1
#
#
# print(get_score(93, 98, 65, 78, 70))  # 位置参数进行传递
# print(get_score(pe=93, math=65, eng=98, phy=78, chem=70))  # 赋值参数进行传递  此时位置随意

# 形参和实参
# def Swap(f1, f2):
#     f1, f2 = f2, f1
#
#
# a = 1
# b = 2
# print(a, b)
# Swap(a, b)
# print(a, b)

# def test(a):
#     a.append(5)
#
#
# arr = [1, 2, 3, 4]
# print(arr)
# test(arr)
# print(arr)

# 默认参数（C++中的缺省参数）
# def test1(a1, b1=1, c1=1):  # 半缺省
#     return a1 + b1 + c1
#
#
# def test2(a2=1, b2=1, c2=1):  # 全缺省
#     return a2 + b2 + c2
#
#
# print(test1(1))
# print(test2())


# 可变参数
# def test(name, student_ID, *args, **kwargs):
#     print("姓名：", name)
#     print("学号：", student_ID)
#     print(type(args))
#     for i in args:
#         print(i, end=",")
#     print(type(kwargs))
#     for j in kwargs.items():  # 取出全部的键值对
#         print(j, end=" ")
#     print("\n------------------------------")
#
#
# test("张三", "21080")  # 可以默认不传可变参数的值
# test("张三", "21080", "2022", 18)  # 剩余参数由*args可变参数存储在元组中
# test("张三", "21080", "2022", 18, math=98, eg=100)  # 存在关键字参数就存储在**kwargs可变参数--字典中

# lambda函数
# import math
#
# area = lambda r: math.pi * r * r
# volume = lambda r, h: math.pi * r * r * h
# print("{:.2f}".format(area(2)))
# print("{:.2f}".format(volume(2, 2)))

# 利用函数sorted()进行按照绝对值进行排序：
# lis = [-9, -5, -6, -1, 4, 5, 0, 3]
# print(lis)  # 原列表
# print(sorted(lis))  # 默认升序
# print(sorted(lis, reverse=True))  # 反转，逆序
# print(sorted(lis, key=lambda x: abs(x)))  # 按照绝对值大小进行升序
#
#
# def test(x):
#     return abs(x)
#
#
# print(sorted(lis, key=test, reverse=True))  # 绝对值逆序，不适用lambda函数

# zip()聚合相同位置
# print(list(zip([1, 2, 3], [4, 5])))  # 以最少元素的迭代器对象为组数
# print(list(zip([1, 2, 3], [4, 5, 9])))  # 以最少元素的迭代器对象为组数
#
# print(list(reversed([1, 2, 3])))

# 练习
# print(type(lambda :None))

# f = lambda x, y: x * y; print(f(2, 6))

# def fun1():
#     '''Test Function'''
#     pass
# print(fun1.__doc__)

# 编写函数isodd函数，若传入的x不是整数，给出提示退出程序，如果x是奇数返回True，x为偶数返回False
# def isodd(x):
#     if not isinstance(x, int):
#         print("传入非整数")
#         exit(1)
#     if x % 2 == 0:
#         return False
#     return True
#
#
# print(isodd(2.2))

# 编写函数change(str1)对str1字符串进行大小写转化，大写字母转化为小写字母，小写字母转化为大写，非英文字母不进行转化
# 法一
# def change(str1):
#     return str1.swapcase()

# 法二
# def change(str1):
#     str2 = ""
#     for c in str1:
#         if 'a' <= c <= 'z':
#             str2 += c.upper()  # 小写字母转化为大写
#         elif 'A' <= c <= 'Z':
#             str2 += c.lower()  # 大写字母转化为小写
#         else:
#             str2 += c
#     return str2

# 法三
# def change(str1):
#     str2 = ""
#     for c in str1:
#         if 'a' <= c <= 'z':
#             str2 += chr(ord(c) - 32)
#         elif 'A' <= c <= 'Z':
#             str2 += chr(ord(c) + 32)
#         else:
#             str2 += c
#     return str2

# str1 = "NihaO20"
# print(str1)
# str1 = change(str1)
# print(str1)

# 编写测试函数gcd(m, n) 和 lcm(m, n) 求两个整数的最大公约数和最小公倍数：
# def gcd(m, n):
#     _max = max(m, n)
#     _min = min(m, n)
#     while _min != 0:
#         tmp = _max % _min
#         _max = _min
#         _min = tmp
#     return _max
#
#
# def lcm(m, n):
#     return int(m * n / gcd(m, n))
#
#
# print(lcm(15, 30), gcd(15, 30))

# 编写测试一个反转函数revers(x) 输入一个整数，将其各位数字反转后输出
# def revers(x):
#     str1 = str(x)
#     for i in range(len(str1) - 1, -1, -1):
#         print(str1[i], end="")
#
#
# revers(12324)

# 用递归的方法反转一个字符串
# def reverse(str1):
#     if len(str1) == 1:
#         return str1[0]
#     str2 = str1[1: len(str1)]
#     return reverse(str2) + str1[0]
#
#
# print(reverse("abcde32423"))

# 编写程序求1^2 - 2^2 + 3^2 - 4^2 +... 97^2 -98^2 + 99^2
sum1 = 0
for i in range(1, 100):
    if i % 2 == 0:
        sum1 -= i**2
    else:
        sum1 += i**2

print(sum1)




